﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SteamFluentAPI.Infrastructure.Base;

namespace SteamFluentAPI.Infrastructure
{
    public class SteamRemoteStorage : SteamInterface
    {
        /// <summary>
        /// (NOT IMPLEMENTED)
        /// </summary>
        [NotImplemented]
        public GetCollectionDetails GetCollectionDetails { get { return new GetCollectionDetails(); } }
        /// <summary>
        /// (TODO)
        /// </summary>
        [NotImplemented]
        [SteamMethod("v1")]
        public GetPublishedFileDetails GetPublishedFileDetails { get { return new GetPublishedFileDetails(); } }
        /// <summary>
        /// UGC file size, local filename, and URL.
        /// </summary>
        [SteamMethod("v1")]
        public GetUGCFileDetails GetUGCFileDetails { get { return new GetUGCFileDetails(); } }
    }

    public class GetCollectionDetails : SteamMethod
    {

    }

    public class GetPublishedFileDetails : SteamMethod
    {

    }

    public class GetUGCFileDetails : SteamAppMethod
    {
        /// <summary>
        /// If specified, only returns details if the file is owned by the SteamID specified. (OPTIONAL)
        /// </summary>
        /// <param name="steamid"></param>
        public void SteamID(long steamid)
        {
            Add("steamid", steamid);
        }

        /// <summary>
        /// ID of UGC file to get info for. (REQUIRED)
        /// </summary>
        /// <param name="ugcid"></param>
        [RequiredParameter("ugcid")]
        public void UgcID(long ugcid)
        {
            Add("ugcid", ugcid);
        }
    }
}
